package com.melody.service;

import com.melody.entry.MusicInfo;
import com.melody.entry.PlaylistInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.melody.entry.Result;
import com.melody.model.vo.PlaylistInfoVo;
import org.springframework.stereotype.Service;

import java.util.List;

/**
* @author zxz
* @description 针对表【playlist_info(歌单信息表)】的数据库操作Service
* @createDate 2025-05-09 10:31:17
*/
public interface PlaylistInfoService extends IService<PlaylistInfo> {


    Result<PlaylistInfo> createPlaylist(PlaylistInfo playlistInfo);
    List<PlaylistInfo> getPlaylistsByUserId(Integer userId, Integer page, Integer limit);

    PlaylistInfo updatePlaylistInfo(PlaylistInfo playlistInfo);

    PlaylistInfo deletePlaylistInfo(Long id);

    PlaylistInfo getPlaylistDetails(Long id);

    List<PlaylistInfo> getPlaylistsByLabelId(Integer labelId, Integer limit);

    /**
     * 根据歌单id获取歌单详细信息（歌单+歌曲列表）
     * @param listId
     * @return
     */
    PlaylistInfoVo getSongListInfoById(Integer listId);



    List<PlaylistInfo> getRandomPlaylistInfo(int page, int limit);


    List<PlaylistInfo> getRandomPlaylistInfos(int limit);

    List<MusicInfo> getFavoriteByUserId(Integer userID);

    public List<PlaylistInfo> getPlaylistListByLabelId(Integer labelId, Integer pageNum, Integer pageSize);
}
